home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / src / out-of-phase-102-c / OutOfPhase 1.02 Source / OutOfPhase Folder / OscillatorSpecifier.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-23  |  4.4 KB  |  129 lines  |  [TEXT/KAHL]

  1. /* OscillatorSpecifier.h */
  2.  
  3. #ifndef Included_OscillatorSpecifier_h
  4. #define Included_OscillatorSpecifier_h
  5.  
  6. /* OscillatorSpecifier module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* Memory */
  12. /* SampleSelector */
  13. /* ModulationSpecifier */
  14. /* Envelope */
  15. /* LFOListSpecifier */
  16.  
  17. typedef float OscillatorNumType;
  18.  
  19. /* forwards */
  20. struct SampleSelectorRec;
  21. struct ModulationSpecRec;
  22. struct EnvelopeRec;
  23. struct LFOListSpecRec;
  24. struct OscillatorListRec;
  25.  
  26. typedef enum
  27.     {
  28.         eOscillatorSampled EXECUTE(= -1229),
  29.         eOscillatorWaveTable
  30.     } OscillatorTypes;
  31.  
  32. struct OscillatorRec;
  33. typedef struct OscillatorRec OscillatorRec;
  34.  
  35. /* create a new oscillator structure */
  36. OscillatorRec*                        NewOscillatorSpecifier(void);
  37.  
  38. /* dispose of an oscillator structure */
  39. void                                            DisposeOscillatorSpecifier(OscillatorRec* Osc);
  40.  
  41. /* get the actual name of the oscillator.  don't dispose this! */
  42. char*                                            OscillatorGetName(OscillatorRec* Osc);
  43.  
  44. /* put a new oscillator name in.  the object becomes owner of the name block */
  45. void                                            PutOscillatorName(OscillatorRec* Osc, char* NewName);
  46.  
  47. /* set the oscillator type */
  48. void                                            OscillatorSetTheType(OscillatorRec* Osc,
  49.                                                         OscillatorTypes WhatKindOfOscillator);
  50.  
  51. /* find out what kind of oscillator this is */
  52. OscillatorTypes                        OscillatorGetWhatKindItIs(OscillatorRec* Osc);
  53.  
  54. /* get the pitch interval --> sample mapping */
  55. struct SampleSelectorRec*    OscillatorGetSampleIntervalList(OscillatorRec* Osc);
  56.  
  57. /* get the list of oscillators that are modulating us */
  58. struct ModulationSpecRec*    OscillatorGetModulatorInputList(OscillatorRec* Osc);
  59.  
  60. /* get the output loudness of the oscillator */
  61. OscillatorNumType                    OscillatorGetOutputLoudness(OscillatorRec* Osc);
  62.  
  63. /* put a new output loudness in for the oscillator */
  64. void                                            PutOscillatorNewOutputLoudness(OscillatorRec* Osc,
  65.                                                         double NewOutputLevel);
  66.  
  67. /* get the frequency multiplier factor */
  68. OscillatorNumType                    OscillatorGetFrequencyMultiplier(OscillatorRec* Osc);
  69.  
  70. /* get the frequency divisor integer */
  71. long                                            OscillatorGetFrequencyDivisor(OscillatorRec* Osc);
  72.  
  73. /* get the frequency adder thing */
  74. OscillatorNumType                    OscillatorGetFrequencyAdder(OscillatorRec* Osc);
  75.  
  76. /* change the frequency adjust factors */
  77. void                                            PutOscillatorNewFrequencyFactors(OscillatorRec* Osc,
  78.                                                         double NewMultipler, long NewDivisor);
  79.  
  80. /* put a new frequency adder value */
  81. void                                            PutOscillatorFrequencyAdder(OscillatorRec* Osc,
  82.                                                         double NewAdder);
  83.  
  84. /* find out if output of this oscillator is to be included in final output */
  85. MyBoolean                                    IncludeOscillatorInFinalOutput(OscillatorRec* Osc);
  86.  
  87. /* change whether or not the oscillator is being included in the final output */
  88. void                                            PutOscillatorIncludeInOutputFlag(OscillatorRec* Osc,
  89.                                                         MyBoolean IncludeInOutputFlag);
  90.  
  91. /* get the loudness envelope for the oscillator */
  92. struct EnvelopeRec*                OscillatorGetLoudnessEnvelope(OscillatorRec* Osc);
  93.  
  94. /* get the list of LFO oscillators modulating the loudness envelope output */
  95. struct LFOListSpecRec*        OscillatorGetLoudnessLFOList(OscillatorRec* Osc);
  96.  
  97. /* get the excitation envelope for the oscillator */
  98. struct EnvelopeRec*                OscillatorGetExcitationEnvelope(OscillatorRec* Osc);
  99.  
  100. /* get the list of LFO oscillators modulating the excitation envelope output */
  101. struct LFOListSpecRec*        OscillatorGetExcitationLFOList(OscillatorRec* Osc);
  102.  
  103. /* resolve modulator named references to oscillators */
  104. MyBoolean                                    ResolveOscillatorModulators(OscillatorRec* Osc,
  105.                                                         struct OscillatorListRec* ListOfOscillators);
  106.  
  107. /* get the stereo bias factor */
  108. OscillatorNumType                    OscillatorGetStereoBias(OscillatorRec* Osc);
  109.  
  110. /* put a new value for the stereo bias factor */
  111. void                                            OscillatorPutStereoBias(OscillatorRec* Osc,
  112.                                                         OscillatorNumType NewStereoBias);
  113.  
  114. /* get the surround bias factor */
  115. OscillatorNumType                    OscillatorGetSurroundBias(OscillatorRec* Osc);
  116.  
  117. /* put a new value for the surround bias factor */
  118. void                                            OscillatorPutSurroundBias(OscillatorRec* Osc,
  119.                                                         OscillatorNumType NewSurroundBias);
  120.  
  121. /* get the time displacement factor */
  122. OscillatorNumType                    OscillatorGetTimeDisplacement(OscillatorRec* Osc);
  123.  
  124. /* put a new value for the time displacement factor */
  125. void                                            OscillatorPutTimeDisplacement(OscillatorRec* Osc,
  126.                                                         OscillatorNumType NewTimeDisplacement);
  127.  
  128. #endif
  129.